#ifndef GTKMM_EXAMPLE_HELLOWORLD_H
#define GTKMM_EXAMPLE_HELLOWORLD_H

#include <gtkmm.h>

#include "BoardFrame.h"
#include "ConfigurationFrame.h"

#include "BoardConfiguration.h"
#include "GeneralConfiguration.h"

#include "JSonReader.h"
#include "JSonWriter.h"

class MainWindow : public Gtk::Window {
  public:
    MainWindow();
    virtual ~MainWindow();

  protected:
    GeneralConfiguration *configuracionGeneral;
    BoardConfiguration *configuracionTablero;

	// Para el caso de edicion de nivel
	std::string archivoNivel;
	
    // Signal Handlers
    void anterior();
    void siguiente();
	void cargar();
    void guardar();

    // Member Widgets
    Gtk::Notebook tabs;

	Gtk::Label cargarNivelLabel;
	
    Gtk::VBox mainVBox;
	Gtk::HBox menuBarHBox;
    Gtk::HButtonBox botonesHBox;

    BoardFrame boardFrame;
    ConfigurationFrame configurationFrame;
	
    Gtk::Button cancelarButton;
    Gtk::Button anteriorButton;
    Gtk::Button siguienteButton;
    Gtk::FileChooserButton cargarButton;
    Gtk::Button guardarButton;
};

#endif
